// 文件名: src/api/types/device.ts
// 块功能: 设备模块类型
// 描述: 定义设备、设备分类等相关的请求和响应类型。(已与后端Schema同步)

import type { PageParams } from './common'

/**
 * 设备分类类型
 */
export interface DeviceCategory {
  id: number
  name: string
}

/**
 * 设备信息类型 (与后端 Device Schema 匹配)
 */
export interface Device {
  id: number
  name: string
  model: string | null
  remarks: string | null
  is_reservable: boolean
  total_quantity: number
  hourly_rate: string // Decimal in backend is often string in JSON
  image_url: string | null
  category: DeviceCategory
}

/**
 * 创建设备的数据模型 (与后端 DeviceCreate Schema 匹配)
 */
export interface DeviceCreate {
  name: string
  category_id: number
  model?: string
  remarks?: string
  is_reservable?: boolean
  total_quantity?: number
  hourly_rate?: number | string
  image_url?: string
}

/**
 * 更新设备的数据模型 (与后端 DeviceUpdate Schema 匹配)
 */
export type DeviceUpdate = Partial<DeviceCreate>

/**
 * 获取设备列表的查询参数
 */
export interface DeviceListParams extends PageParams {
  name?: string
  category_id?: number
}
